package com.reservation.mapper;

import com.reservation.entity.Users;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface AuthMapper {

    /**
     * 根据账号查询用户
     * @param account 账号
     * @return User
     */
    Users getByAccountAndRole(String account, String role);

    /**
     * 新增用户
     * @param user 用户对象
     * @return 影响行数
     */
    int insert(Users user);

    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return User
     */
    Users getById(Long id);
    
    /**
     * 根据账号查询用户
     * @param account 账号
     * @return User
     */
    Users getByAccount(String account);
    
    /**
     * 更新用户信息
     * @param user 用户对象
     * @return 影响行数
     */
    int updateUserInfo(Users user);
    
    /**
     * 根据用户ID更新用户头像路径
     * @param userId 用户ID
     * @param avatarPath 头像的相对访问路径
     * @return 影响行数
     */
    int updateUserAvatar(@Param("userId") Integer userId, @Param("avatarPath") String avatarPath);
    
    /**
     * 根据用户ID更新用户状态
     * @param userId 用户ID
     * @param status 用户状态
     * @return 影响行数
     */
    int updateUserStatus(@Param("userId") Integer userId, @Param("status") Integer status);
}